-
-
Notifications
You must be signed in to change notification settings - Fork 94
Checkpoint initial position #461
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Checkpoint initial position #461
Conversation
b59f744 to
cd7fc2e
Compare
f82c525 to
fe01b3d
Compare
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
|||||||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||
fe01b3d to
7e389db
Compare
Test Results 51 files + 34 51 suites +34 33m 36s ⏱️ + 21m 34s Results for commit 7e389db. ± Comparison against base commit 20e513c. This pull request removes 5 and adds 17 tests. Note that renamed tests count towards both. |
src/Core/test/Eventuous.Tests.Subscriptions.Base/SubscribeToAll.cs
Outdated
Show resolved
Hide resolved
src/Relational/src/Eventuous.Sql.Base/Subscriptions/SqlSubscriptionBase.cs
Outdated
Show resolved
Hide resolved
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
|
/add_docs |
User description
This PR introduces the a concept of initial checkpoint position for new subscriptions.
As discussed on #457 and #456.
The new option is added to the
SubscriptionWithCheckpointOptionstype and managed directly on the children ofEventSubscriptionWithCheckpoint.The implementation so far covers the SQL event stores and EventStoreDB. Redis is NOT yet covered.
If this approach is deemed acceptable:
Rework of #457
PR Type
Enhancement
Description
Add
CheckpointInitialPositionenum to control subscription start positionAllow subscriptions to start from end of stream for integration purposes
Implement initial position logic for KurrentDB and SQL event stores
Add comprehensive tests for starting consumption from end position
Diagram Walkthrough
File Walkthrough
6 files
New enum for subscription start positionAdd InitialPosition property to checkpoint optionsExpose CheckpointStore as protected propertyImplement initial position logic for all streamImplement initial position logic for streamImplement initial position logic for SQL subscriptions3 files
Add test helper for end position consumptionAdd KurrentDB tests for end position subscriptionAdd PostgreSQL tests for end position subscription